//012. 高度可除的三角数
//        三角数即由依次排列的自然数的和构成，所以第 7 个三角数是 1+2+3+4+5+6+7=28，前十个
//        三角数是：1,3,6,10,15,21,28,36,45,55,⋯，让我们列出前七个三角数的因子：
//        可以看出 28 是第一个因子超过 5 的三角数，求第一个因子超过 500 的三角数。
//        答案：76576500

public class Week012 {
    static void run() {
        int n = 500;
        int cur = 1, num = 1;//num记录当前所加到的自然数
        int t;
        while (true) {
            int cnt = 0;
            //在sqrt(n)之前每一个因子都存在另一个对应的因子，使得这两个因子之积等于n
            for (t = 1; t * t < cur; ++t) {
                if (cur % t == 0) {
                    cnt += 2;
                }
            }
            //特别判断平方部分，只算一个因子
            if (t * t == cur) ++cnt;
            if (cnt > n) break;
            cur += ++num;
        }
        System.out.println(cur);
    }

    public static void main(String[] args) {
        long startTime = System.nanoTime();
        run();
        System.out.println("\n程序运行时间：" + (System.nanoTime() - startTime) + "ns.");
    }
}